//
//  Global.h
//  TravelAgency
//
//  Created by QianYuan on 2019/8/14.
//  Copyright © 2019 QY. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface Global : NSObject<NSCopying,NSMutableCopying>
//单例
+ (instancetype)shareInstance;

#pragma mark --获取keywindow
- (UIWindow *)getKeyWindow;

/** 解析成html的富文本 */
- (NSAttributedString *)attrHtmlStringFrom:(NSString *)str;

/**
 *  base64加密
 */
- (NSString *)stringBase64Encode:(NSString *)base64String;

/**
 *  base64解密
 */
- (NSString *)stringBase64Decode:(NSString *)base64String;

/**
 * 渐变色效果
 */
- (void)addGradient:(UIView *)gradientView colors:(NSArray *)colorAry;

/**
 * 跳转登录框
 */
- (void)skipLoginViewController:(UIViewController *)viewController;

/**
 * 判断密码6～18位
 */
- (BOOL)checkPassword:(NSString *)password;

/**
 * 检测字符串里是否有中文
 */
- (BOOL)isHaveChineseInString:(NSString *)string;

/**
 * 压缩图片到指定尺寸大小
 */
- (UIImage *)compressOriginalImage:(UIImage *)image toSize:(CGSize)size;

/**
 * 字典 转换为NSString的json字符串声明
 */
- (NSString*)convertToStrJson:(id)infoDict;
/**
 *  转换strJson为字典声明
 */
- (NSMutableDictionary*)convertToDic:(id)infoStr;

/**
 * 根据字体大小 高度获取宽度
 */
- (CGFloat)widthForText:(NSString *)text withFont:(UIFont *)font withHeight:(CGFloat)height;

/**
 * 根据字体大小 宽度获取宽度高度
 */
- (CGFloat)heightForText:(NSString *)text withFont:(UIFont *)font withWidth:(CGFloat)width;

/**
 *  判断是否是正确的银行卡号实现
 */
- (BOOL)IsBankCard:(NSString *)cardNumber;

/**
 *  毫秒转时间声明
 */
- (NSString *)ConvertStrToTime:(NSString *)timeStr formatterString:(NSString *)formatterString;

/**
 *  计算上时间差
 */
- (NSString *)timeIntervalToLastTime:(NSString *)lastTime fromTime:(NSString *)fromTime;

/**
 *  计算上一个时间距离现在多久声明
 */
- (NSString *)timeIntervalFromLastTime:(NSDate *)lastTime ToCurrentTime:(NSDate *)currentTime;
/**
 *  比较两个时间的大小声明
 *
 *  @param oneDay     时间1
 *  @param anotherDay 时间2
 *
 *  @return 0:两个时间相等 1:时间1在前 2:时间1在后
 */
- (NSInteger)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay;
/**
 *  判断某个时间是否为今年
 */
- (BOOL)isThisYear:(NSString *)atString;
/**
 *  判断某个时间是否为昨天
 */
- (BOOL)isYesterday:(NSString *)atString;
/**
 *  判断某个时间是否为今天
 */
- (BOOL)isToday:(NSString *)atString;

/**
 *  将十六进制颜色转换为 UIColor 对象
 */
- (UIColor *)colorWithHexString:(NSString *)color;
/**
 *  利用正则表达式验证
 */
- (BOOL)isAvailableEmail:(NSString *)email;
/**
 *  车牌格式声明
 */
- (BOOL)carNumber:(NSString *)carNumber;
/**
 * 将汉字转成拼音声明
 */
- (NSString *)transform:(NSString *)chinese;
/**
 * 判断手机号是否合法
 */
- (BOOL)PhoneNumberMobile:(NSString *)mobile;


/**
 * 获取当前日期
 */
- (NSString *)getCurrentDate;
/**
 * 时间转字符串
 */
- (NSString *)dateRunte:(NSDate *)date;
/**
 * 获取几个月之后的日期 +：后 -：前
 */
-(NSDate *)getPriousorLaterDateFromDate:(NSDate *)date withMonth:(NSInteger)month;
/**
 * 获取一组日期数组
 */
- (NSArray*)getDatesWithStartDate:(NSString *)startDate endDate:(NSString *)endDate;
/**
 * 获取当前时间戳
 */
- (NSString *)getCurrentTimestamp;

/**定时器*/
- (void)timerDown:(UIButton *)button timeValue:(NSInteger)value;
//停止定时器
- (void)stopTimer;

#pragma mark - 判断是不是首次登录或者版本更新
- (BOOL)isFirstLauch;

@end

NS_ASSUME_NONNULL_END
